home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 21 / AACD 21.iso / AACD / Games / JST / sources / src / loaders / IKPlus / IKPlusHD.asm < prev    next >
Encoding:
Assembly Source File  |  2001-03-19  |  1.9 KB  |  140 lines

  1. ; *** Kid Gloves HD Loader V1.0
  2. ; *** Written by Keith Krellwitz (kkrellwi@nmu.edu)
  3.  
  4.     MACHINE    68000
  5.  
  6.     include    "jst.i"
  7.  
  8.     HD_PARAMS    "",0,0
  9.  
  10. STACK_LOCATION = $600
  11.  
  12. _loader:
  13.  
  14.     Mac_printf    "IK+ HD Loader v0.9b"
  15.     Mac_printf    "Coded by Abaddon/JOTD ©1998-2000"
  16.  
  17.     TESTFILE    loader_rgb
  18.     tst.l    D0
  19.     beq.b    .rgb_version
  20.  
  21.     TESTFILE    loader_cd32
  22.     tst.l    D0
  23.     bne.b    FileErr
  24.     RELOC_STL    cd32_version
  25.     NEWLINE
  26.     Mac_printf    "Loading CD32 version"
  27.  
  28. .rgb_version:
  29.     JSRABS    LoadFiles
  30.  
  31.     move.l    #CACRF_CopyBack,D1
  32.     moveq.l    #0,D0
  33.     JSRABS    Degrade
  34.  
  35.     GO_SUPERVISOR
  36.     SAVE_OSDATA    $100000
  37.  
  38.     JSRGEN    FreezeAll
  39.     move.w    #$2700,sr
  40.     lea        $78000,a7
  41.  
  42.     RELOC_TSTL    cd32_version
  43.     bne.b    run_cd32
  44.  
  45.     lea        loader_rgb(pc),a0
  46.     lea        $600.W,a1
  47.     move.l    #$0,d0
  48.     move.l    #-1,d1
  49.     JSRGEN    ReadFile
  50.     lea        $832.W,a0
  51.     lea        $600.W,a1
  52.     JSRGEN    RNCDecrunch
  53.     PATCHUSRJSR    $1a58.W,KbInt
  54.     JSRGEN    FlushCachesHard
  55.     lea        $600.W,a7
  56.     jmp        $600.W
  57.  
  58. KbInt:
  59.     move.b    $bfec01,d0
  60.     movem.l    d0/d1,-(a7)
  61.     ror.b    #$1,d0
  62.     not.b    d0
  63.     cmp.b    #$59,d0                ; f10
  64.     bne.b        noquit
  65.     JSRGEN    InGameExit
  66. noquit:
  67.     RELOC_TSTL    cd32_version
  68.     beq.b    .nocd32
  69.  
  70.     move.b    $7DF.W,D1
  71.  
  72.     cmp.l    #76,D0        ; up
  73.     bne.b    .noup
  74.     moveq.l    #1,D0
  75.     abcd.b    D0,D1
  76.     cmp.b    #$99,D1
  77.     beq.b    .nodown
  78.     move.b    D1,$7DF.W
  79.     bra.b    .nocd32
  80. .noup
  81.     cmp.l    #77,D0        ; down
  82.     bne.b    .nodown
  83.     moveq.l    #1,D0
  84.     sbcd.b    D0,D1
  85.     tst.b    D1
  86.     beq.b    .nodown
  87.     move.b    D1,$7DF.W
  88. .nodown
  89. .nocd32
  90.     movem.l    (a7)+,d0/d1
  91.     rts
  92.  
  93. ; added by Jeff
  94.  
  95. run_cd32:
  96.     lea        loader_cd32(pc),a0
  97.     lea        $600.W,a1
  98.     move.l    #$0,d0
  99.     move.l    #-1,d1
  100.     JSRGEN    ReadFile
  101.  
  102.     ; change stack location
  103.     
  104.     move.l    #STACK_LOCATION,$17BC.W
  105.  
  106.     ; goto game patch
  107.  
  108.     PATCHUSRJMP    $1092.W,GotoGame
  109.  
  110.     ; sets quit key
  111.  
  112.     PATCHUSRJSR    $1a58.W,KbInt
  113.  
  114.     ; disable zero page modification
  115.  
  116.     PATCH_RTS    $B16.W
  117.  
  118.     ; temporary
  119.  
  120.     JSRGEN    FlushCachesHard
  121.     lea        STACK_LOCATION,a7
  122.     jmp        $600.W
  123.  
  124. GotoGame:
  125.     lea    STACK_LOCATION,A7
  126.     move    #$2000,SR
  127.     jmp    $AD4.W
  128.  
  129. loader_rgb:
  130.     dc.b    "IK00",0
  131. loader_cd32:
  132.     dc.b    "IK+",0
  133.     even
  134. cd32_version:
  135.     dc.l    0
  136. FileErr:
  137.     Mac_printf    "** File ''IK00'' or ''IK+'' missing."
  138.     JMPABS    CloseAll
  139.  
  140.